package cc.jethro.jdxysdk.ImgUtil

import android.content.Context
import android.net.Uri
import android.widget.ImageView

import com.bumptech.glide.Glide

/**
 * Created by jethro on 2017/5/18.
 */

object ImgLoader {

    /**
     * 支持定义占位图片和错误图片的加载器
     * @param context
     * *
     * @param uri
     * *
     * @param imageView
     * *
     * @param replaceId 占位图片 在图片还未下载成功时显示
     * *
     * @param errorId 错误图片 在图片加载失败的时候显示
     */
    fun loadImg(context: Context, uri: Uri, imageView: ImageView, replaceId: Int, errorId: Int) {
        Glide.with(context)
                .load(uri)
                .placeholder(replaceId)
                .error(errorId)
                .into(imageView)

    }

    /**
     * 支持定义占位图片和错误图片的加载器
     * @param context
     * *
     * @param string
     * *
     * @param imageView
     * *
     * @param replaceId 占位图片 在图片还未下载成功时显示
     * *
     * @param errorId 错误图片 在图片加载失败的时候显示
     */
    fun loadImg(context: Context, string: String, imageView: ImageView, replaceId: Int, errorId: Int) {
        Glide.with(context)
                .load(string)
                .placeholder(replaceId)
                .error(errorId)
                .into(imageView)
    }

    /**
     * 加载图片
     * @param context
     * *
     * @param uri 图片uri
     * *
     * @param imageView
     */
    fun loadImg(context: Context, uri: Uri, imageView: ImageView) {
        Glide.with(context)
                .load(uri)
                .into(imageView)
    }

    /**
     * 加载图片
     * @param context
     * *
     * @param string 图片地址
     * *
     * @param imageView
     */
    fun loadImg(context: Context, string: Int, imageView: ImageView) {
        Glide.with(context)
                .load(string)
                .into(imageView)
    }

    /**
     * 加载图片
     * @param context
     * *
     * @param resourceId 图片资源ID
     * *
     * @param imageView
     */
    fun loadImg(context: Context, resourceId: Int?, imageView: ImageView) {
        Glide.with(context)
                .load(resourceId)
                .into(imageView)
    }

    /**
     * 加载为圆形图片
     * @param context
     * *
     * @param uri
     * *
     * @param imageView
     */
    fun loadRoundImg(context: Context, uri: Uri, imageView: ImageView) {
        Glide.with(context)
                .load(uri)
                .transform(RoundTransform(context))
                .into(imageView)
    }

    /**
     * 加载为圆形图片
     * @param context
     * *
     * @param string
     * *
     * @param imageView
     */
    fun loadRoundImg(context: Context, string: String, imageView: ImageView) {
        Glide.with(context)
                .load(string)
                .transform(RoundTransform(context))
                .into(imageView)
    }

    /**
     * 加载为圆形图片
     * @param context
     * *
     * @param resourceId
     * *
     * @param imageView
     */
    fun loadRoundImg(context: Context, resourceId: Int?, imageView: ImageView) {
        Glide.with(context)
                .load(resourceId)
                .transform(RoundTransform(context))
                .into(imageView)
    }

    /**
     * 加载为圆角图片
     * @param context
     * *
     * @param uri 图片地址
     * *
     * @param imageView
     */
    fun loadFilletImg(context: Context, uri: Uri, imageView: ImageView) {
        Glide.with(context)
                .load(uri)
                .transform(FilletTransform(context))
                .into(imageView)
    }

    /**
     * 加载为圆角图片
     * @param context
     * *
     * @param string 图片地址
     * *
     * @param imageView
     */
    fun loadFilletImg(context: Context, string: String, imageView: ImageView) {
        Glide.with(context)
                .load(string)
                .transform(FilletTransform(context))
                .into(imageView)
    }

    /**
     * 加载为圆角图片
     * @param context
     * *
     * @param resourceId 图片资源ID
     * *
     * @param imageView
     */
    fun loadFilletImg(context: Context, resourceId: Int?, imageView: ImageView) {
        Glide.with(context)
                .load(resourceId)
                .transform(FilletTransform(context))
                .into(imageView)
    }

    /**
     * 加载为圆角图片
     * @param context
     * *
     * @param uri 图片URI
     * *
     * @param dp 圆角半径
     * *
     * @param imageView
     */
    fun loadFilletImg(context: Context, uri: Uri, dp: Int, imageView: ImageView) {
        Glide.with(context)
                .load(uri)
                .transform(FilletTransform(context, dp))
                .into(imageView)
    }

    /**
     * 加载为圆角图片
     * @param context
     * *
     * @param string 图片地址
     * *
     * @param dp 圆角半径
     * *
     * @param imageView
     */
    fun loadFilletImg(context: Context, string: String, dp: Int, imageView: ImageView) {
        Glide.with(context)
                .load(string)
                .transform(FilletTransform(context, dp))
                .into(imageView)
    }

    /**
     * 加载为圆角图片
     * @param context
     * *
     * @param resourceId 图片资源ID
     * *
     * @param dp 圆角半径
     * *
     * @param imageView
     */
    fun loadFilletImg(context: Context, resourceId: Int?, dp: Int, imageView: ImageView) {
        Glide.with(context)
                .load(resourceId)
                .transform(FilletTransform(context, dp))
                .into(imageView)
    }

}
